package cn.ly.design.structure;

/**
 * 接口的适配器模式：
 * 一个接口中有多个抽象方法，写实现类时，必须实现该接口的所有方法，这明显有时比较浪费，因为并不是所有的方法都是我们需要的，
 * 有时只需要某一些。为了解决这个问题，我们引入了接口的适配器模式，借助于一个抽象类，该抽象类实现了该接口，实现了所有的方法，
 * 而我们不和原始的接口打交道，只和该抽象类取得联系，所以我们写一个类，继承该抽象类，重写我们需要的方法就行。
 * 
 * 应用场景：当不希望实现一个接口的所有方法时，可以用接口适配器模式。
 * @author liuyu
 *
 */

public interface Sourceable {
	
	void method1();
	void method2();

}

abstract class Wrapper implements Sourceable{

	@Override
	public void method1() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void method2() {
		// TODO Auto-generated method stub
		
	}
}

class SourceSub1 extends Wrapper{
	
	public void method1(){
		System.out.println("this is SourceSub1");
	}

}

class SourceSub2 extends SourceSub1{
	public void method2(){
		System.out.println("this is SourceSub2");
	}
}
